package Datas_Structure.Sort;

import java.util.Arrays;

/**
 * 二分查找
 */
public class JavaTest01_1 {
    public static void main(String[] args) {

        int[] arr = new int[]{4,6,7,8,3,1,0};
        //二分查找应先排序（这直接调API的快速排序）
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        int begin = 0;
        int end = arr.length-1;
        int mid = (begin+end)/2;
        int search = 9;
        boolean isFlag = true;
        //循环（未知次数条件先为true）
        while (begin <= end){
            //判断中间位置是否等于查找的数
            if (arr[mid] == search){
                isFlag = false;
                System.out.println("数值"+ search+ "存在,位置在" + mid);
                break;
            }else {
                //如果中间大于查找则 end为mid - 1
                if (arr[mid] > search){
                    end = mid - 1;
                }else {
                    begin = mid + 1;
                }
                mid = (end + begin) /2;
            }
        }
        if (isFlag){
            System.out.println("数值"+search+"不存在");
        }
    }
}